<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <form id="form1" action="http://www.biwuit.cn/spboot/userLoginPostRequest">
        用户名：<input type="text" name="username"><br />
        密码：<input type="password" name="password"><br />
        <input type="submit" value="提交">
    </form>
    <script>
        /* 
            问题：如果表单的输入项很多的话，需要手动的获取表单的输入项的值，比较繁琐。
            有没有简单的方式呢？
            可以使用FormDate()
         */
        const request = new XMLHttpRequest();
        const form1Obj = document.querySelector("#form1");
        const inputs = document.querySelectorAll("input");

        form1Obj.addEventListener("submit", function (e) {
            // 传递表单参数作为对象，自动完成表单参数的收集
            const formDataObj = new FormData(form1Obj);
            // 阻止表单的提交
            e.preventDefault();
            // 通过Ajax提交请求
            request.open("POST", "http://www.biwuit.cn/spboot/formDataRequest");
            // 如果数据格式是formData对象，是不需要加上该头信息
            // request.setRequestHeader("Content-type", "multipart/form-data");
            // 获取数据
            // // const usernameValue = inputs[0].value;
            // // const passwordValue = inputs[1].value;
            // // const args = "username="+usernameValue+"&"+"password="+passwordValue;
            // 使用FormData获取参数
            console.log(formDataObj.get("username"));
            console.log(formDataObj.get("password"));
            request.send(formDataObj);
            request.onreadystatechange = function () {
                if (request.readyState == 4 && request.status == 200) {
                    console.log(request.responseText);
                }
            }
        });
    </script>
</body>

</html>